1. Technical Field
The present disclosure relates to a memory card and a method of updating a program for driving the same.
2. Discussion of the Related Art
FIG. 1 is a functional block diagram of a conventional memory card 100. Referring to FIG. 1, the memory card 100 includes a host, a control block 10, and a non-volatile memory 170. The control block 10 includes a host interface 110, a volatile memory 120, a buffer 130, a read-only memory (ROM) 140, a central processing unit (CPU) 150, a non-volatile memory interface 160, and a bus 180.
Conventional methods of storing a driving program for driving the memory card 100 may be categorized according to where the driving program is stored, such as in the ROM 140, in the non-volatile memory, or by dividing the driving program into two parts and storing them in the ROM 140 and the non-volatile memory 170, respectively.
The program for driving the memory card 100 needs to be updated in some cases. However, when the driving program is stored according to the above categories, the updating of the driving program suffers from disadvantages due to the nature of the corresponding categories.
In a method which stores the driving program in the ROM 140, the driving program is read directly from the ROM 140 and then executed. However, since the ROM 140 is read-only, the driving program can only be updated by replacing the ROM 140 with a new ROM having the updated driving program.
In a method which stores the driving program in the non-volatile memory 170, the driving program is stored in the non-volatile memory 170 and then moved to the volatile memory 120 to execute the driving program. Since the non-volatile memory 170 is writable, the driving program can be easily updated. However, the additional step of moving the driving program requires that the volatile memory 120 be large enough to accommodate the driving program, which unfortunately increases the required capacity of the volatile memory 120.
In addition, the memory card 100 must further include circuitry and/or software for properly transmitting the driving program from the nonvolatile memory 170 to the volatile memory 120, thereby increasing the manufacturing costs of the memory card 100.
In a method which divides the driving program into two parts and stores the respective parts in the ROM 140 and the nonvolatile memory 170, when the driving program for the memory card 100 is updated, a static part of the driving program is stored in the ROM 140 and a changeable part thereof is stored in the nonvolatile memory 170. Thus, it is possible to update the driving program for the memory card 100 without incurring additional costs.
However, in order to store the updated program in the nonvolatile memory 170, an update application program that controls updating of the memory card 100 must be present in the ROM 140. Thus, if the update application program has a fault, the driving program cannot be updated. Accordingly, the ROM 140 must be replaced with another ROM.